Processing systems, such as personal computers, laptops or workstations, perform a boot process when the processing system is initially powered up for operation. During the boot process, the operating system used by the processing system is retrieved from a memory device, such as a disk drive or the like. One example of such an operating system is the well known “disk operation system” (DOS). Once the operating system has been retrieved, loaded, and is properly executing, the processing system can then be used for its intended purpose.
To initiate the boot process, power is applied to the processing system processor. That is, the boot process is initiated by turning on the processing system. The processor retrieves from a nonvolatile memory a Basic Input/Output System (BIOS) program. The nonvolatile memory wherein the BIOS resides is typically a limited capacity, solid-state memory that is directly coupled to, or that is part of, the processor. One example of a solid-state memory is the Read-Only Memory (ROM).
One of the initial functions of the BIOS program is to communicatively couple the processor with the various components of the processing system, including the memory device wherein the operating system resides, and to ensure that the processing system components are functioning correctly. The processor accomplishes this function by executing the Power On Self Test (POST) routines.
Another task of the BIOS is to specify the memory device where the operating system resides. The BIOS program causes the processor to search for, and then retrieve, a boot record from a resident memory that stores the native operating system. The boot record is typically stored at the first part of the memory, and may be referred to as a primary partition table in some systems. The boot record contains information identifying the various device addresses and related information required to operate the processing system. In some systems, this boot record is referred to as the Master Boot Record (MBR).
Within the boot record is a routine commonly referred to as the boot strap loader. Once the BIOS has caused the processor to retrieve the bootstrap loader from the memory, the BIOS passes control of the boot process to the bootstrap loader. One part of the bootstrap loader identifies the location of various addresses using a cylinders/heads/sectors (CHS) format. Accordingly, the memory device where the bootstrap loader and the operating system reside is configured to emulate a CHS type device addressing. Ultimately, the boot process concludes with the retrieval and installation of the processing system's operating system.
In some situations, the processor is unable to access the boot record and/or the native operating system. For example, the entire memory device, or a part of the memory device where the boot record and the native operating system reside, may have failed. In one instance, a part of the memory array may have failed. In another instance, a mechanical component may have failed, such as the drive motor on a disk storage device. In yet another instance, information in the boot record and/or the native operating system may be corrupted with erroneous information or data. When such situations occur, the processing system is unable to start up. That is, the boot process fails. Accordingly, the processing system cannot be used for its intended purpose because of the failed boot process.
When the boot process fails due to lack of a bootstrap loader, failure of partition data, or absence of an operating system, the BIOS will successively attempt to obtain the boot record and the operating system from another memory device. For example, the boot record and operating system may be stored on another hard disk, cd-rom, floppy disk, or network file share. When that device is present during the boot process (such as when the floppy disk is inserted into the processing system's floppy drive), the BIOS system retrieves the boot record and operating system stored on the device. Accordingly, the processing system is able to properly complete the boot process.
It is also known to use other types of memory media to store a boot record and operating system. One example is a solid-state memory device that is configured to communicatively couple to the processing system via a Universal Serial Bus (USB) port. When the solid-state memory device is coupled to the processing system during the boot process, the boot record and operating system are retrieved from the solid-state memory via the USB port. Since the bootstrap loader identifies the location of a various addresses using a cylinders/heads/sectors (CHS) format, the bootable solid-state memory device is configured to emulate a CHS type device addressing.
The boot record and operating system are loaded into the solid-state memory device when the solid-state memory device is initially formatted. During formatting, the solid-state memory device is coupled to the processing system via the USB port. However, because BIOS programs are different between various types of processing systems, and because the USB storage device geometry is unique, the initial mapping of the boot record and operating system into a particular BIOS based upon a CHS format is unique for each device model. That is, the boot record and operating system, after loading onto the bootable solid-state memory device, may be used to boot only those processing systems that have the same BIOS, or a compatible BIOS, as the BIOS of the processing system that initially loaded the boot record and operating system. Accordingly, the bootable solid-state memory device cannot be used to boot other types of processing systems.